package grafica.jugador.ventanas;

import grafica.jugador.controladores.ControladorReagrupar;

import javax.swing.JDialog;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.Font;
import java.awt.FlowLayout;

public class Reagrupar {

	private JDialog jDialogReagrupar = null;  //  @jve:decl-index=0:visual-constraint="199,30"
	private JPanel jContentPaneReagrupar = null;
	private JPanel jPanelReagrupar = null;
	private JLabel jLabel = null;
	private JTextField jTextFieldReagrupar = null;
	private ControladorReagrupar controladorReagrupar;
	private String nomPais1;
	private String nomPais2;
	private String nomJugador;
	private JPanel jPanelInfo = null;
	private JLabel jLabelInfo = null;
	private JPanel jPanelBotones = null;
	private JButton jButtonAceptar = null;
	private JButton jButtonCancelar = null;
	public Reagrupar(String nomPais1, String nomPais2, String nomJugador){
//		controladorReagruar = new ControladorReagrupar(this, panelJugador);
		controladorReagrupar = new ControladorReagrupar(this);
		this.nomPais1 = nomPais1;
		this.nomPais2 = nomPais2;
		this.nomJugador = nomJugador;
	}
	
	
	private JDialog getJDialogReagrupar() {
		if (jDialogReagrupar == null) {
			jDialogReagrupar = new JDialog();
			jDialogReagrupar.setSize(new java.awt.Dimension(320,213));
			jDialogReagrupar.setTitle("Reagrupar Fichas desde "+nomPais1+" a "+nomPais2);
			jDialogReagrupar.setResizable(false);
			jDialogReagrupar.setContentPane(getJContentPaneReagrupar());
			jDialogReagrupar.setLocationRelativeTo(null);
		}
		return jDialogReagrupar;
	}
	
	private JPanel getJContentPaneReagrupar() {
		if (jContentPaneReagrupar == null) {
			jContentPaneReagrupar = new JPanel();
			jContentPaneReagrupar.setLayout(new BorderLayout());
			jContentPaneReagrupar.add(getJPanelReagrupar(), java.awt.BorderLayout.NORTH);
			jContentPaneReagrupar.add(getJPanelInfo(), java.awt.BorderLayout.SOUTH);
			jContentPaneReagrupar.add(getJPanelBotones(), java.awt.BorderLayout.CENTER);
		}
		return jContentPaneReagrupar;
	}

	private JPanel getJPanelReagrupar() {
		if (jPanelReagrupar == null) {
			FlowLayout flowLayout1 = new FlowLayout();
			flowLayout1.setVgap(15);
			flowLayout1.setHgap(40);
			jLabel = new JLabel();			
			jLabel.setText("Cantidad de Fichas a Reagrupar");
			jPanelReagrupar = new JPanel();
			jPanelReagrupar.setLayout(flowLayout1);
			jPanelReagrupar.setPreferredSize(new java.awt.Dimension(308,50));
			jPanelReagrupar.add(jLabel, null);
			jPanelReagrupar.add(getJTextFieldReagrupar(), null);
		}
		return jPanelReagrupar;
	}
	
	private JPanel getJPanelBotones() {
		if (jPanelBotones == null) {
			FlowLayout flowLayout = new FlowLayout();
			flowLayout.setAlignment(java.awt.FlowLayout.CENTER);
			flowLayout.setHgap(50);
			flowLayout.setVgap(15);
			jPanelBotones = new JPanel();
			jPanelBotones.setLayout(flowLayout);
			jPanelBotones.setPreferredSize(new java.awt.Dimension(120,50));
			jPanelBotones.add(getJButtonAceptar(), null);
			jPanelBotones.add(getJButtonCancelar(), null);
		}
		return jPanelBotones;
	}
	
	private JPanel getJPanelInfo() {
			if (jPanelInfo == null) {
				jLabelInfo = new JLabel();
				jLabelInfo.setFont(new Font("Dialog", Font.BOLD, 10));
				jLabelInfo.setText("");
				jLabelInfo.setPreferredSize(new java.awt.Dimension(430,30));
				jPanelInfo = new JPanel();
				jPanelInfo.setPreferredSize(new java.awt.Dimension(48,40));
				jPanelInfo.add(jLabelInfo, null);
			}
			return jPanelInfo;
		}
	
	private JTextField getJTextFieldReagrupar() {
		if (jTextFieldReagrupar == null) {
			jTextFieldReagrupar = new JTextField();
			jTextFieldReagrupar.setPreferredSize(new java.awt.Dimension(40,20));
			//Solo permite ingresar valores numericos
			jTextFieldReagrupar.addKeyListener(new KeyAdapter() {
				public void keyTyped (KeyEvent e){
				char caracter = e.getKeyChar();
				// Verificar si la tecla pulsada no es un digito
				if(((caracter < '0') ||
				(caracter > '9')) &&
				(caracter != KeyEvent.VK_BACK_SPACE))
				{
				e.consume(); // ignorar el evento de teclado
				}
				}
				});
		}
		return jTextFieldReagrupar;
	}

	private JButton getJButtonCancelar() {
		if (jButtonCancelar == null) {
			jButtonCancelar = new JButton();
			jButtonCancelar.setPreferredSize(new java.awt.Dimension(90,25));
			jButtonCancelar.setText("Cancelar");
			ActionListener BotonCancelar = new ActionListener(){
				public void actionPerformed (ActionEvent e){ 
					jDialogReagrupar.dispose(); 
				}
			};
			jButtonCancelar.addActionListener(BotonCancelar );
		}
		return jButtonCancelar;
	}

	private JButton getJButtonAceptar() {
		if (jButtonAceptar == null) {
			jButtonAceptar = new JButton();
			jButtonAceptar.setPreferredSize(new java.awt.Dimension(90,25));
			jButtonAceptar.setText("Aceptar");
			ActionListener BotonAceptar = new ActionListener(){
				public void actionPerformed (ActionEvent e){
					String cantFichas = jTextFieldReagrupar.getText();	
					controladorReagrupar.ReagruparFicgas(nomJugador, nomPais1 , nomPais2, Integer.parseInt(cantFichas));
				}
			};
			jButtonAceptar.addActionListener(BotonAceptar);
		}
		return jButtonAceptar;
	}
	public void setVisible (boolean b)	{	
		getJDialogReagrupar().setVisible(b);
    }
	public void setJLabelInfo(String info){
		jLabelInfo.setText(info);
	}
	
	public void dispose(){
		jDialogReagrupar.dispose();
	}

}
